# -*- encoding=utf8 -*-
"""
RedFlag-TC000049   （合拍）滤镜切换
（合拍）点击切换滤镜场景
（合拍）滑动切换滤镜场景
"""
__author__ = "ldm"

import sys
import os

# 获取当前脚本所在目录.py
current_dir = os.path.dirname(os.path.abspath(__file__))
# 获取上级目录.air
parent_dir = os.path.dirname(current_dir)
# 获取上级目录air
grandparent_dir = os.path.dirname(parent_dir)
# 获取和air目录平级的conf、testcase目录路径
conf_dir = os.path.join(grandparent_dir, 'conf')
testcase_dir = os.path.join(grandparent_dir, 'testcase')
# 将conf、testcase目录添加到sys.path
sys.path.append(conf_dir)
sys.path.append(testcase_dir)

from PageFunction import CameraVideoShooter
from elements import *
auto_setup(__file__)

shooter = CameraVideoShooter()

log("--------------------------------（合拍）点击切换滤镜场景--------------------------------------")
"""
进入合拍
点击滤镜
选择滤镜
断言
"""
shooter.enter_the_production_step()
shooter.click_element(shooting_page_filter)
shooter.click_element(shooting_page_filter_nature)
text = shooter.get_element_text(poco("cn.migu.video.clip.walle:id/currentprogress"))
shooter.assert_texts_equal(text, "80", "断言失败，预期滤镜参数与实际滤镜参数不一致")

log("--------------------------------（合拍）滑动切换滤镜场景--------------------------------------")
"""
左右滑动屏幕
断言
"""

log("--------------------------------（合拍）滑动切换滤镜场景--------------------------------------")

"""
封装滑动和断言的方法
"""
def filter_swipe(start_pos, end_pos, swipe_times=5, expected_value="100"):
    """
    测试滑动切换滤镜功能

    Args:
        start_pos: 滑动起始坐标 (x, y)
        end_pos: 滑动结束坐标 (x, y)
        swipe_times: 滑动次数
        expected_value: 预期的滤镜参数值
        swipe_duration: 滑动持续时间（秒）
    """
    log(f"开始测试滑动方向: {start_pos} -> {end_pos}")

    for i in range(swipe_times):
        # 执行滑动操作
        shooter.swipe_screen(start_pos, end_pos, duration=0.1)

        # 获取当前滤镜参数
        current_value = shooter.get_element_text(poco("cn.migu.video.clip.walle:id/currentprogress"))

        # 记录每次滑动后的参数值
        log(f"第 {i + 1}/{swipe_times} 次滑动后，滤镜参数: {current_value}")

        # 断言参数值符合预期
        shooter.assert_texts_equal(
            current_value,
            expected_value,
            f"断言失败: 预期滤镜参数为 {expected_value}，但实际为 {current_value}"
        )

    log(f"滑动方向 {start_pos} -> {end_pos} 测试完成")

"""
自定义测试参数，有默认值，如果后期需要修改就在这里修改就行
"""
left_pos = (0.7, 0.45)
right_pos = (0.3, 0.45)
swipe_times = 6
expected_value = "80"

"""
测试执行
"""
# 测试向左滑动（从右到左）
filter_swipe(left_pos, right_pos, swipe_times ,expected_value)

# 测试向右滑动（从左到右）
filter_swipe(right_pos, left_pos, swipe_times ,expected_value)

# 关闭应用
stop_app(UGC_package_name)